Containerized software for virally copying from one endpoint to another

ABSTRACT

A method, system and computer readable medium include objects with media content. The method includes receiving, at one or more servers, a request for the media content to be displayed at an endpoint. The method includes identifying information about an environment associated with the endpoint. The method includes identifying a set of objects to include in a container for the media content based on the information identified about the environment. At least one of the objects includes program code for completing a transaction during display of the media content. Additionally, the method includes sending, by one or more servers, the set of objects to the endpoint.

CROSS-REFERENCE TO RELATED APPLICATIONS AND CLAIM OF PRIORITY

The present application is related to: U.S. Provisional PatentApplication No. 61/528,635, filed Aug. 29, 2011, entitled “CONTAINERIZEDSOFTWARE FOR VIRALLY COPYING FROM ONE ENDPOINT TO ANOTHER”; U.S.Provisional Patent Application No. 61/650,917, filed May 23, 2012,entitled “MOBILE SOFTWARE ASSOCIATED WITH INTELLIGENT INTERNET OBJECTS”;U.S. Provisional Patent Application No. 61/650,873, filed May 23, 2012,entitled “DOWNLOADABLE PRODUCTS WITH INTELLIGENT INTERNET OBJECTS”; U.S.Provisional Patent Application No. 61/650,888, filed May 23, 2012,entitled “COMPANION PRODUCTS AND UPSELL PRODUCTS WITH INTELLIGENTINTERNET OBJECTS”; U.S. Provisional Patent Application No. 61/650,897,filed May 23, 2012, entitled “DISTRIBUTED SHOPPING CART WITH INTELLIGENTINTERNET OBJECTS”; U.S. Provisional Patent Application No. 61/650,900,filed May 23, 2012, entitled “DISTRIBUTED RETARGETING OF PRODUCTS WITHINTELLIGENT INTERNET OBJECTS,” and U.S. Provisional Patent ApplicationNo. 61/650,881, filed May 23, 2012, entitled “DYNAMIC CONFIGURATION OFINTELLIGENT INTERNET OBJECTS”. Provisional Patent Application Nos.61/528,635; 61/650,917; 61/650,873; 61/650,888; 61/650,897; 61/650,900;61/650,881; and 61/662,765 are owned by the assignee of the presentapplication and are hereby incorporated by reference into the presentapplication as if fully set forth herein. The present application herebyclaims priority under 35 U.S.C. §119(e) to Provisional PatentApplication Nos. 61/528,635; 61/650,917; 61/650,873; 61/650,888;61/650,897; 61/650,900; 61/650,881; and 61/662,765.

TECHNICAL FIELD

The present disclosure is directed, in general, to containerizedsoftware, and more specifically, to systems and methods for distributingcontainerized software.

BACKGROUND

Online shopping has increased in recent years. Consumers use technologyto simplify the shopping experience to shop from home without needing totravel to the store. Merchants have become increasingly competitive tomarket their products and services to consumers over the Internet.Traditionally, when a consumer sees an advertisement for a product ordesires to purchase something online, the consumer needs to visit thewebsite for the merchant in order to complete the transaction. This maybe undesirable in certain situations. For example, consumers may notwish to be distracted by advertisements or may not wish to leave thewebsite that they are viewing in order to purchase something. As aresult, online sales potential is diminished due to lack of conveniencefrom the consumer perspective. Additionally, hosts of the website theconsumer is viewing may not want consumers to leave their website to gotransact business elsewhere.

Videos and other types of media are often popular among viewers.Websites, such as YouTube, allow users to post videos for others toview. Some videos gain popularity that can be tracked through number ofviews or “hits.”

Monetization of media content can present challenges even despite thepopularity of the video. For example, some websites provide advertisingthat is displayed prior to the video or elsewhere on the webpage. Suchadvertisements may interfere with the video content and may annoyviewers. While website advertisement may generate some revenue, thatrevenue is often primarily retained by the website hosting the videocontent. This results in a dynamic where the website doing the hostingprofits financially while the creators of the video content, althoughgaining notoriety, often struggle to see a return on investment.

Accordingly, there is a need for methods, systems, devices and computerreadable media that take into account one or more of these issues andpossibly other issues as well. For example, there is a need to bring thestore to the consumer.

SUMMARY

According to various embodiments of the present disclosure, methods,systems devices and computer readable media are disclosed for enablingcontainerized software.

In one embodiment, a method is provided for including objects with mediacontent. The method includes receiving, at one or more servers, arequest for the media content to be displayed at an endpoint. The methodincludes identifying information about an environment associated withthe endpoint. The method includes identifying a set of objects toinclude in a container for the media content based on the informationidentified about the environment. At least one of the objects includesprogram code for completing an electronic commerce transaction duringdisplay of the media content. Additionally, the method includes sending,by one or more servers, the set of objects to the endpoint.

Before undertaking the DETAILED DESCRIPTION below, it may beadvantageous to set forth definitions of certain words and phrases usedthroughout this patent document: the terms “include” and “comprise,” aswell as derivatives thereof, mean inclusion without limitation; the term“or,” is inclusive, meaning and/or, the phrases “associated with” and“associated therewith,” as well as derivatives thereof, may mean toinclude, be included within, interconnect with, contain, be containedwithin, connect to or with, couple to or with, be communicable with,cooperate with, interleave, juxtapose, be proximate to, be bound to orwith, have, have a property of, or the like; and the term “controller”means any device, system or part thereof that controls at least oneoperation, such a device may be implemented in hardware, firmware orsoftware, or some combination of at least two of the same. It should benoted that the functionality associated with any particular controllermay be centralized or distributed, whether locally or remotely.Definitions for certain words and phrases are provided throughout thispatent document, those of ordinary skill in the art should understandthat in many, if not most instances, such definitions apply to prior, aswell as future uses of such defined words and phrases.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present disclosure and itsadvantages, reference is now made to the following description taken inconjunction with the accompanying drawings, in which like referencenumerals represent like parts:

FIG. 1 illustrates a block diagram of a communication system that can beutilized to facilitate communication between endpoint(s) through acommunication network in accordance with various embodiments of thedisclosure;

FIG. 2 illustrates a block diagram of a container management environmentthat may be utilized to virally syndicate and propagate a containeracross the Internet in accordance with various embodiments of thepresent disclosure;

FIG. 3 illustrates an example display of media content in a display unitfor a container at an endpoint in accordance with one embodiment of thepresent disclosure;

FIG. 4 illustrates an example display of a ribbon including for purchasewithin a video in accordance with one embodiment of the presentdisclosure;

FIG. 5 illustrates an example display of information about a selecteditem in accordance with one embodiment of the present disclosure;

FIG. 6 illustrates an example display of an interface for logging intoan account in accordance with one embodiment of the present disclosure;

FIG. 7 illustrates an example display of a checkout interface for anitem in the user's cart in accordance with one embodiment of the presentdisclosure;

FIG. 8 illustrates an example display of a shipping address entryinterface allowing a user to input shipping information in connectionwith a purchase transaction in accordance with one embodiment of thepresent disclosure;

FIG. 9 illustrates an example sharing interface for sending a video clipwith a container in accordance with one embodiment of the presentdisclosure;

FIG. 10 illustrates an example display of the video clip in FIG. 3displayed in a display unit for a container in a webpage in accordancewith one embodiment of the present disclosure;

FIG. 11 illustrates an example display of the shipping address entryinterface in FIG. 8 displayed in the display unit for the container in awebpage in accordance with one embodiment of the present disclosure;

FIG. 12 illustrates an example display of a container implemented withina social media website in accordance with one embodiment of the presentdisclosure;

FIG. 13 illustrates an example display of a container implemented withina webpage on a tablet computer in accordance with one embodiment of thepresent disclosure;

FIG. 14 illustrates an example display of a container implemented withina mobile device in accordance with one embodiment of the presentdisclosure;

FIG. 15 depicts a flowchart of a process for including objects withmedia content in accordance with disclosed embodiments;

FIG. 16 depicts a flowchart of a process for rendering a container at anendpoint in accordance with disclosed embodiments; and

FIG. 17 illustrates a data processing system that may be used toimplement various embodiments of the present disclosure.

DETAILED DESCRIPTION

FIGS. 1-17, discussed below, and the various embodiments used todescribe the principles of the present disclosure in this patentdocument are by way of illustration only and should not be construed inany way to limit the scope of the disclosure. Those skilled in the artwill understand that the principles of the present disclosure may beimplemented in any suitably arranged system.

FIG. 1 illustrates a block diagram of a communication system 100 thatcan be utilized to facilitate communication between endpoint(s) 110 andendpoint(s) 120 through a communication network 130, according toparticular embodiments of the disclosure. In various embodiments,server(s) 102 may be utilized to facilitate communication betweenendpoint(s) 110 and endpoint(s) 120. As used herein, “endpoint” maygenerally refer to any object, device, software, or any combination ofthe preceding that is generally operable to communicate with anotherendpoint. The endpoint(s) may represent a user, which in turn may referto a user profile representing a person. The user profile may comprise,for example, an address for the user, a user name, a pass code, otheruser information, or any combination of the preceding. Additionally, theendpoint(s) may represent a device that comprises any hardware,software, firmware, or combination thereof operable to communicatethrough the communication network 130. The server(s) 102 are one or morecomputers or programs running on one or more computers that are capableof performing a request received from another computer or program.Examples of server(s) include applications servers, enterprise servers,and web servers.

Examples of an endpoint(s) include, but are not necessarily limited to,a computer or computers (including servers, applications servers,enterprise servers, desktop computers, laptops, net books, tabletcomputers (e.g., IPAD)), a switch, mobile phones (e.g., including IPHONEand Android-based phones), networked televisions, networked discplayers, components in a cloud-computing network, or any other device orcomponent of such device suitable for communicating information to andfrom the communication network 130. In various embodiments, theendpoint(s) 110 and 120 may be a website or email message. Endpoints maysupport Internet Protocol (IP) or other suitable communicationprotocols. Endpoints may additionally include a medium access control(MAC) and a physical layer (PHY) interface that conforms to IEEE 801.11.If the endpoint is a device, the device may have a device identifier,such as the MAC address, and may have a device profile that describesthe device.

The communication network 130 and links 105, 115 and 125 to thecommunication network 130 may include, but is not limited to, a publicor private data network; a local area network (LAN); a metropolitan areanetwork (MAN); a wide area network (WAN); a wireline or wireless network(GSM, CDMA, LTE, WIMAX, or the like); a local, regional, or globalcommunication network; portions of a cloud-computing network; acommunication bus for components in a system; an optical network; asatellite network; an enterprise intranet; other suitable communicationlinks; or any combination of the preceding. In particular embodiments,portions of the links 115, 125 or communication network 130 may be onthe Internet.

Although an endpoint generally appears as being in a single location,the endpoint(s) may be geographically dispersed, for example, in cloudcomputing scenarios. As used in this document, “each” may refer to eachmember of a set or each member of a subset of a set.

When the endpoints(s) 110 and 120 communicate with one another, any of avariety of security schemes may be utilized. As an example, inparticular embodiments, endpoint(s) 110 may represent a client andendpoint(s) 120 may represent a server in client-server architecture.The server and/or servers may host a website, and the website may have aregistration process whereby the user establishes a username andpassword to authenticate or log into the website. The website mayadditionally utilize a web application for any particular application orfeature that may need to be served up to the website for use by theuser.

Embodiments of the present disclosure provide innovative new methods formerchants to reach their customers online. In the traditional onlinesales model, merchants need to create search or display ads which showup when online consumers visit search engine sites or various webproperties. If the consumer sees an interesting ad related to a productor service, they need to leave their current activity and visit someother web destination to discover more information or make onlinepurchases. Consumers have specific online behavior patterns. If they areactively shopping, then the traditional multistep model is workable. Thetraditional advertising sales model requires that the consumer stop whatthey are doing and visit some other online destination. However, if theyare on a social site interacting with friends, reading the news, playinggames, or engaged in other online activities, they are much less likelyto leave their current activity to visit some external Internetdestination.

Various embodiments of the present disclosure bring the productinformation or store to the consumer. Various embodiments of the presentdisclosure utilize an innovative new Smart Container™ code/technologythat virally syndicates across the web, for example, using componentsdescribed with reference to FIG. 1 or using other components. The SmartContainer™ code/technology is ideal for those types of destinations thatonline consumers tend to frequent, such as social networks and blogs.Regardless, if the Smart Container™ code is located on a web page, ablog article, a social network page or wall, or a mobile device, a usercan complete their transaction right there with no need to be divertedto some external destination.

FIG. 2 illustrates a block diagram of a container management environment200 that may be utilized to virally syndicate and propagate a containeracross the Internet in accordance with various embodiments of thepresent disclosure. The container 205 is program code that virallysyndicates and propagates objects 210 across the web and other connectednetwork and mobile devices. The container 205 is a new type of softwareentity that performs a task in a distributed fashion while adapting andconfiguring to the user's environment. The container 205 may not becreated by a web site author, but an independent object that can performin multiple different environments. The container 205 can be deployed byanyone, a blogger, email campaign, etc. The container 205 does not needto be purpose built into the website or program code to work.

Shopping and marketing experiences can be enhanced when interactivemedia is used. The container 205 serves up interactive media to users.For example, one of the objects 210 in the container 205 is a mediaplayer 215. The media player 215 includes instructions and parametersfor rendering or otherwise displaying media content in a display unit220 located at the endpoint 225. The media player 215 displays orstreams media content from media server(s) 230 in the display unit 220at the endpoint 225. For example, the media player 215 may reference aURL or other location to stream media content from the media server(s)230. In some examples, the media player 215 may stream content fromwebsites, such as YouTube™. Examples of media content that may bedisplayed include video data (such as video clips and animation), imagedata (e.g., still images from the video data, advertisements, picturesof goods or services, etc.) and audio data (e.g., narration or marketingcontent associated with the video data or the image data, music orsongs). Various embodiments recognize that one of the most appealingforms of media for sales and shopping is video. Video allows a much morelifelike representation than text or static pictures. Video also createsa rich product browsing or shopping experience.

In various embodiments of the present disclosure, the container 205supports many different types of transactions. For example, thecontainer 205 can be configured in a variety of ways to address anentire value chain of online marketing and shopping. The value chain ofonline marketing and shopping includes impressions, clicks (e.g.,enticing a viewer to click on an object and be directed to a differentwebsite or to different content within the container 205), leadgeneration (e.g., submitting personal information with a request foroffers of products or service), and performing electronic commercetransactions. Electronic commerce is the buying and selling of productsor services over computer networks, such as the Internet. Electroniccommerce transactions are transactions associated with electroniccommerce. In non-limiting examples, electronic commerce transactionsinclude the purchase or sale of goods and services and donation of itemsof value (e.g., money, goods or services) to an organization (e.g., acharity, campaign, cause, etc.). In other non-limiting examples,electronic commerce transactions may encompass activities (such asimpressions, clicks or lead generation) that lead up to other electroniccommerce transactions (such as the purchase or sale of goods andservices).

The container 205 includes transaction objects 235 to support thedifferent types of transactions. The transaction objects 235 includecode for marketing and completing transactions within the container 205.For example, the transaction objects 235 may include images andinformation about a selection of products or services being offered,data for competing payment transactions, an electronic shopping cartand/or other data for completion of electronic commerce transactions.The media content, such as video clips, may be displayed by the mediaplayer 215 at one of the endpoints to allow a consumer to learn moreabout the products, services or transactions supported by the container205. The consumer can select any of these offered items to get moredetails (e.g., using the transaction objects 235), all enclosed withinthe container 205.

The syndication objects 240 include code for allowing a user to share,embed or otherwise send a container to another endpoint. For example,the syndication objects 240 include code for allowing a user to sharethe media content (and consequently the objects accompanying the mediacontent in the container 205) on a social website, embed within awebpage or send the container 205 (or at least a link (e.g., uniformresource locator (URL)) for the container) via an electronic message(e.g., email, text message, instant message).

The authentication objects 245 include program code for allowing a userof the endpoint 225 to authenticate or login to an account associatedwith the container 205. The authentication objects 245 may provide auser interface for a user to login or may automatically log a user inbased on a combination of one or more of user settings, devicerecognition, and/or data stored in a cookie. The account may be a useraccount for the provider of the container or the merchant associatedwith the container. For example, the account may be used for easypayment processing of transactions or a distributed shopping cart, aswill be described in greater detail below. If the user selects to sharethe container 205, the authentication objects 245 may includeinformation about the user sharing the container 205 for data trackinganalytics and/or indentifying information about which objects to includein the syndicated container.

The tethering objects 250 include program code for tethering thecontainer 205 with another container at another endpoint. The tetheringobjects 250 enhance the shopping experience for different users. Thetethering objects 250 enable a shared container experience between twoor more different users. For example, the tethering objects 250 maysynchronize the display of the media content, allow users to sharepurchases or a shopping cart, provide an interface for text, voiceand/or video chat between the users.

The reporting objects 255 include program code for keeping track ofinformation about the container 205. For example, the reporting objects255 may report information on clicks, impressions, lead generation,product sales, donations, users, syndication paths, syndicationlocations, and/or any other reportable metrics for merchants and/orcontainer providers to track and improve container performance. Thedescription of the objects 210 included in the container 205 is notintended to be exhaustive or limiting. Any other suitable types ofobjects may be included in the container 205.

Because the code for the container 205 handles all the complexity, insome embodiments, the container 205 can turn a simple web site into aninstant e-commerce store. The container 205 enables users to transactonline without having to deal with the complexity of setting up ane-commerce site. For merchants with an e-commerce site, the container205 readily enables a rich shopping experience with the interactionbetween the media content and transaction objects 235. In non-limitingexamples of a creative hobbyist or local band, the container 205 allowsthe user to readily sell directly to interested consumers. In someembodiments, the transaction objects 235 may include offers in thecontainer 205 for custom merchandise. For example, merchants can customdesign a selection of apparel with their art and graphics to be soldalong with their own creations. Some embodiments may dynamically produceand ship the custom apparel for the merchant, eliminating the need tomanage inventory, and providing online customers with a richer line ofproducts. Because the e-commerce store uses the container 205, thee-commerce store can also propagate out onto all forms of viralsyndication methods as well.

These offered items (products or services) may be items being advertisedor sold. Depending on the type, the container 205 may allow the consumerto request to be contacted, or even purchase the object, within thecontainer 205. The consumer need not leave their current activity or webpage. The offered items could also include getting discounts or coupons.The offered items may even be an opportunity to donate to a charity orpolitical campaign. In certain instances, it does make sense to visitanother Internet designation, and if appropriate, the consumer can belinked there as well.

The objects 210 in the container 205 are supported by backend eventserver(s) 260. The objects 210 are individual applications (e.g., miniapps or applets) that provide the functionality for implementing thecontainer 205. The objects 210 are intelligent and lightweight, whichimproves the transferability of the container 205 while allowing thecontainer 205 to implement tasks in a dynamic and effective manner. Theobjects 210 may not include everything necessary for handling all thetasks required. The objects 210 may communicate with one or more serversin backend event server(s) 260 to complete tasks in the container 205.

For example, to process a transaction, the transaction objects 235 maysecurely send payment information to payment server(s) 265. In otherexamples, the transaction objects 235 or authentication objects 245 maysend information about impressions, clicks, shares, and/or user logininformation to admin server(s) 270 for reporting and analytics. In otherexamples, all the objects needed for the container 205 may not beinitially provisioned. For example, to keep the container initiallylightweight, identifiers or locations for objects may be included in thecontainer 205 initially with the objects later provisioned by theobjects server(s) 275. In another example, certain objects may beprovided in the container 205 based on initial information about theendpoint 225 (e.g., object selection based on assumed device type,website location, or programming language). Upon recognition thatadditional or different objects should be included in the container 205,the objects server(s) 275 may provision the additional or differentobjects for improved container experience at the endpoint 225. Peerevent server(s) 280 may send and receive information from objects tohandle information related to sharing and purchases. For example, thepeer event server(s) 280 support tethering events, such as notificationof video clip views, purchases, and/or user messaging.

The container 205 can virally syndicate across the Internet followingthe more popular network paths. The container 205 can be hosted ontraditional web pages, blogs, contained in emails, operate on mobiledevices, or propagate social networks. Because the container 205 code isflexible, the container 205 can also be set up in the form factor of adisplay ad unit and distributed via ad servers on display advertisingnetworks. When the code for the container 205 exists on social networkslike Facebook™, the container 205 can ride the wave of user “likes”. Forexample, if a woman shopper likes some great shoes shown in a video inthe container 205, the container 205 code can propagate directly totheir “wall.” Now all her friends see the video and products in thecontainer, and can view or transact right there on their own wall. Ofcourse, if any of their friends also “like” it, the container 205 codepropagates and rides the wave further out into that branch of the socialnetwork yielding a potential exponential growth factor. In otherexamples, the container 205 objects may support a politician running foroffice. Their supporters may be passionate about the message and “like”it, again making it available to their network. Now, similarly mindedpolitical supporters can view those messages too, and if so moved maydonate to the cause within the container 205. In another example, suchas sports, a sports fan may wish to watch that content on their HD largescreen TV. More and more have interconnected devices, such as a Roku,and a container 205 code could exist on such an IP TV box as well,enabling the sharing of a container 205 in a variety of Internetconnected devices.

Another form of tracking relates to how the container 205 is propagated.A merchant may wish to use affiliates to help syndicate the container205 and pay a percentage based on the transactions resulting from theirwork. The container 205 objects can be tagged with affiliate trackingidentifiers allowing status reports and transactions from that containerinstance or its descendants to be properly filtered. Another trackingusage may be for a politician to assign affiliate codes to theirsupporters and be able to measure whose efforts result in the most newsupporters.

The container 205 is a smart container in that the container 205 iscapable of customizing automatically based on the environment to whichthe container 205 is propagated. For example, the objects 210 includedin the container 205 may be configured or selected in real-time based ondifferent criteria. The container 205 is generated by the configurator285 when the configurator 285 receives a request for the container 205,such as an embed code 290. The configurator 285 is a backend service orapplication that runs on a server (e.g., one or more of the server(s)102 in FIG. 1). The configurator 285 generates the container 205 byidentifying the objects 210 to include in the container 205.

The environment associated with the endpoint 225 where the container isbeing propagated to is one example of criteria that may be used toselect or otherwise configure the objects 210 included in the container205. For example, the configurator 285 may identify this environmentinformation from the embed code 290. The embed code 290 is a request forthe container 205 that includes information, such as, for example,without limitation, an identifier of the container 205 being propagated,an originating Internet Protocol (IP) address, a time the request wassent and/or received, reference codes, such as a requester identifier,merchant identifier, website (e.g., URL) where the embed code 290 wassent from and/or is requesting the container 205 be rendered at, and/orother information that may be identified about the environment wherecontainer 205 renders. From the IP address and/or the websiteinformation, the configurator 285 may identify a location of theendpoint 225, a type of device (e.g., mobile device, computer, etc.) ofthe endpoint, the website (e.g., stand alone web page, embedded within awebpage, displayed on a social website) for the endpoint and/or otherinformation about the environment.

In some examples, if the device is a traditional PC or laptop, theconfigurator 285 will include objects for the container 205 to renderusing the optimal technology or rendering parameters, which, for thispurpose, may be flash video. On mobile devices, such as IPhones, IPads,or Android phones, the rendering parameters may be selected as HTML5 ora native interactive app. Based on the information about how the contentshould be rendered, configurator 285 includes the appropriate objectsfor the media player 215 to render properly for the environment. Beyonddevice type, there are other dimensions of customization. Smallerdevices and some environments, such as a social site, restrict windowsizes, so the media player 215 in the container 205 adapts to properlyrender the media content.

In other examples, the configurator 285 may identify which products toadvertise or ways to customize the media content based on the locationof the endpoint 225, which can be identified from the IP address. Forexample, the container 205 can provide different content customizedbased on geo-location. In one example, if the location of the endpointis in a cold climate, objects in the transaction objects 235 may beselected to offer appropriate seasonal products with the media content.In other examples, the media content may be customized based on thelocation. For example, text associated with the media content and thetransaction objects 235 may be selected based on a language commonlyspoken at the location. In other examples, the media content may beselected to appeal to location preferred sports teams, activities, etc.

As other examples of criteria that may be used to select or otherwiseconfigure the objects 210 included in the container 205, theconfigurator 285 may communicate with backend event server(s) 260 toidentify the objects to identify objects to include in the container205. For example, the configurator 285 may identify products to marketor video clips to send based on merchant information accessible via theadmin server(s) 270. For example, the status of a marketing campaign maybe used to select or otherwise configure the objects 210 and mediacontent included in the container 205. The objects in the container 205may be updated and/or selected based on real-time information aboutsuccesses and failures based on information about the marketingcampaign. For example, embodiments of the present disclosure track salesdata and video propagation data, such as what video clips are popular,and/or a demographic of the viewers syndicating or viewing the mediacontent. The server(s) 102 in FIG. 1 may identify which products toadvertise at what location and what video clips to select, based on thesales data or the video propagation data. Based on this, the server(s)dynamically select which objects to place within the container 205 thatis sent to the endpoint.

The admin server(s) 270 can track data on how a merchant campaign isperforming and when merchants launch and syndicate their container 205code onto the Internet. For example, the reporting objects can reportback the status on events and transactions of interest, (e.g., how manyimpressions, video views, clicks, leads, sales have occurred). All suchstatuses can be sent back as events occur, providing details on how theyare doing. Because the containers 205 are smart, the server(s) caninstruct the container 205 to change behavior, offer different clips,update products, or to stop the marketing or sales campaign.

The objects in the container 205 code know about each other in certainembodiments. When a video is playing, the container 205 can update theproduct and service objects being shown that correspond with theparticular sequence in a video segment. The container 205 allows ashopping channel to be created and syndicated across the Internet.

The code for the container 205 is designed to be highly scalable inparticular embodiments. Rather than burden a single website with massivetraffic which would result from a traditional model of bringing allconsumers to the store, the code for the container 205 operates in adistributed manner. In particular embodiments, the code for thecontainer 205 executes at the endpoint 225, (e.g., on a blog, socialnetwork or mobile device). The container 205 can fetch the instructionswhen stated, and then gather product items and video streams from aworldwide distributed content delivery network (e.g., the network 130).This results in highly scalable architecture allowing millions ofconcurrent consumers.

Although the container 205 has been described with media content andobjects 210, such media content and objects 210 may not all be sent toan endpoint at the same time or as a bundle. Rather, in particularembodiments, information concerning the container may initially bestored on, for example, a server accessed by the endpoint. Then, whenthe endpoint requests the information for the container, additionalinformation can be dynamically pushed to the endpoint or pulled from theendpoint (e.g., by the server sending a pointer to the endpoint).

By utilizing such a dynamic push/pull scenario, a single container 205can be modified over time. As a simple example, a price may beassociated with an item for sale at a point in time; however, when thatpoint in time changes, the price for that item may change. Although theprice changes, the initial information for requesting the container 205does not change. Further examples of dynamic content will be describedbelow.

FIGS. 3-14 are screen shots illustrating various example embodiments offunctionality of the container 205. FIGS. 3-14 are intended as examplesof features of various embodiments of the present disclosure. FIG. 3illustrates an example display of media content in a display unit for acontainer at an endpoint in accordance with one embodiment of thepresent disclosure. For example, in FIG. 3, a video clip 300 for a shoeis displayed within a frame for a container (such as container 205). Thevideo clip 300 can be played by selection of the play button 305. A usercan access a shopping cart via shopping cart button 310, find outinformation about the video via info button 315, and share the video viathe share button 320. FIG. 4 illustrates an example display of a ribbon400 including items 405 for purchase within the video clip 300 inaccordance with one embodiment of the present disclosure.

FIG. 5 illustrates an example display of information about a selecteditem in accordance with one embodiment of the present disclosure. Forexample, while watching the video clip 300, the viewer may wish topurchase or inquire about purchasing a shoe featured in the video clip300. Upon selection of an image of the item 500 from the items 405 inthe ribbon 400, the container 205 operating at the endpoint generates adisplay of information about the item 500 within the same display unit220 for the video clip 300. For example, a user can view informationabout the item 500 with options to add to the user's cart (e.g., “add tocart” button 505) or to share the item (e.g., share button 510). Theuser is able to view information about the item 500, add to cart andshare the item all within the container 205 while watching the videoclip 300.

FIG. 6 illustrates an example display of an interface 600 for logginginto an account in accordance with one embodiment of the presentdisclosure. In this illustrative example, a user may log into an accountto purchase items all within the container 205 while watching the videoclip 300. For example, the login interface 600 in FIG. 6 may begenerated by the authentication objects 245 in FIG. 2.

FIGS. 7 and 8 illustrate the purchase of an item within a display unitfor a container. FIG. 7 illustrates an example display of a checkoutinterface 700 for an item 705 in the user's cart in accordance with oneembodiment of the present disclosure. The checkout interface 700 allowsa user to purchase an item or items in the user's cart within thecontainer 205 while watching the video clip 300. FIG. 8 illustrates anexample display of shipping address entry interface 800 allowing a userto input shipping information in connection with a purchase transactionin accordance with one embodiment of the present disclosure. Thecontainer 205 can generate and present similar interfaces for otherstages of the purchase transaction (e.g., payment, authorization, login,etc.). The container 205 enables the user to complete an entiretransaction within the container 205 while watching the video clip 300.In other embodiments, authentication objects 245 may authenticate a userand retrieve stored payment or shipping information of the user that canexpedite the payment process. For example, the shipping address entryinterface 800 is part of one example embodiment of the container 205 andmay not be displayed in some embodiments.

FIG. 9 illustrates an example sharing interface 900 for sending a videoclip 905 with a container in accordance with one embodiment of thepresent disclosure. The sharing interface 900 illustrated in FIG. 9 is ascreen capture of a video clip 905 being played at one endpoint 110 witha display of options 910 for sending the video clip 905 (andconsequently the container 205) to another endpoint 120. For example, aviewer watching the video clip 905 may select to share the video clip905 on a website, such as a social network website. In response to sucha selection, the code for the container 205 (e.g., the syndicationobjects 240) may generate a display of sharing options 910 listingwebsites where the video clip 905 and container may be shared. In otherexamples, the code for the container 205 (e.g., the syndication objects240) allows the viewer to embed within a webpage or send the container205 via email. All of these options 910 for sending, propagating orotherwise virally syndicating the video clip 905 can be completed whilewatching the video clip 905 within the display unit 220 for the videoclip 905 and without needing to be directed to another webpage.

The container 205 can be implemented in a variety of differentenvironments. FIGS. 10-14 provide exemplary screen shots of thecontainer 205 implemented in different environments. The illustrationsprovided in FIGS. 10-14 are indented as illustrative examples and notintended to be exhaustive or imply any structural or physical limitationto the various embodiments of the present disclosure. FIG. 10illustrates an example display of the video clip 300 in FIG. 3 displayedin a display unit for a container in a webpage 1000 in accordance withone embodiment of the present disclosure. As illustrated in FIG. 10, thecontainer 205 can be implemented in the web page 1000 in a browser on acomputer, such as a desktop or laptop computer. FIG. 11 illustrates anexample display of the shipping address entry interface 800 in FIG. 8displayed in the display unit for the container in the webpage 1000 inaccordance with one embodiment of the present disclosure. For example,as illustrated in FIG. 11, the container 205 enables a user to completean entire transaction within the display unit 220 for the container 205while watching the video clip and without needing to be directed toanother webpage.

FIG. 12 illustrates an example display of a container implemented withina social media website 1200 in accordance with one embodiment of thepresent disclosure. As depicted in FIG. 12, the container 205 customizesitself to adapt to and render in the environment to which the container205 is propagated. As illustrated, the container 205 has adapted todisplay a thumbnail image 1205 for a video clip within a wall 1210 onthe social media website 1200. For example, a user may share a link tothe video clip via the social media website 1200. The container 205 thencustomizes itself to display in line with the wall of the user. Uponselection of the video clip by another user, that other user is enabledto watch the video clip and complete transactions all within thecontainer displayed in the social media website 1200 as described above.Also, as illustrated in this example, the container 205 streams thevideo content from another website (e.g., youtube.com) while providingthe container functionality as described above.

FIG. 13 illustrates an example display of a container implemented withina webpage on a tablet computer 1300 in accordance with one embodiment ofthe present disclosure. As depicted in FIG. 12, the container 205customizes itself to adapt to and render in a browser for the tabletcomputer 1300. FIG. 14 illustrates an example display of a containerimplemented within a display 1400 of a mobile device in accordance withone embodiment of the present disclosure. As depicted in FIG. 14, thecontainer 205 customizes itself to adapt to and render in a userinterface 1405 in the display 1400 of the mobile device. For example,the container 205 may be generated in a separate application for thecontainer 205, an application for a social media website (e.g.,Facebook™ app, Twitter™ app, etc.), or a web browser.

By bringing the store to the customer, the container 205 enables manynew ways for merchants to connect with their consumers withoutdisrupting the consumers' web activities. The end result is to connectthe consumer directly with the merchant eliminating the intermediary andpromoting a much more natural shopping experience.

According to an embodiment of the disclosure, an innovative new methodfor merchants to administer their virtual stores online is provided. Tomanage features with the container 205, an administrative feature may beprovided via the admin server(s) 270 in what is referred to as anadministration application. In an online administration model, merchantsare typically required to have a fully featured computing device withpersistent access to the World Wide Web. As an alternative to such ascenario and to enable on-the-go management, an embodiment of thedisclosure provides merchants with a fully featured administrationapplication—executable on mobile, handheld and smart devices—that iscapable of creating and administering an entire virtual online store. Insuch embodiments, camera and video features may be utilized to capturedigital assets for the container 205, whereas the mobile device'scommunication capabilities may be utilized to not only upload thedigital assets, but also to issue commands and/or retrieve informationfor the management of an account that is used to create objects for thecontainer 205.

The administration application for the mobile device is capable ofrunning in both connected and disconnected modes. In a connected mode,the mobile administration application sends commands to the remoteserver instructing it to perform various actions related to storeadministration. Alternatively, in a disconnected mode, the mobileadministration application performs all of the commands locally, on theinstalled device, with periodic synchronization to the remote server.

Below are non-limiting features of administration applications for themobile device:

-   -   Onboarding Management Capability: allows merchants to take a        step-by-step video tutorial designed to streamline an onboarding        process.    -   Store Management Capability: allows merchants to display,        create, modify and remove Smart Stores™ that belong to them.    -   Email Management Capability: allows merchants to display,        create, modify and remove email templates.    -   Tax Management Capability: allows merchants to display, create,        modify, remove and apply tax rules.    -   Shipping Management Capability: allows merchants to display,        create, modify and apply shipping rules.    -   Display Unit Management Capability: allows merchants to display,        create, modify, preview and remove video display units. In        addition, this feature allows merchants to associate display        units with stores that belong to the merchant.    -   Display Management Capability: allows merchants to configure        advance settings, such as product purchase limit, user purchase        limit, video play control, affiliate tracking, purchase        instructions, thank you page content, end of video play content,        as well as background images.    -   Video Management Capability: allows merchants to capture,        upload, display, modify, preview, transcode, transcribe and        remove videos. In addition, this feature allows merchants to        associate videos with display units.    -   Library Management Capability: allows merchants to capture,        upload, display, modify, preview and remove digital assets in        both 3-D and 2-D formats.    -   Plan Management Capability: allows merchants to display,        upgrade, downgrade and cancel subscriptions.    -   Reporting Capability: allows merchants to generate desired        reports based on the e-commerce, video and social sharing        analytical measures and correlations.    -   Customer Management Capability: allows merchants to display,        create, modify, group and remove user information. In addition,        this feature allows merchants to create notifications to users        and/or groups.    -   Product Management Capability: allows merchants to display,        create, modify and remove products of various types offered        inside of the object. Products include, but are not limited        to, a) e-commerce products; b) e-commerce products with        variances; c) linkout products; d) donation products; e)        coupons; f) downloadable products; and g) lead generation        products. In addition, this feature allows merchants to        associate products with stores.    -   Order Management Capability: allows merchants to display,        create, modify, remove and disposition orders.    -   Promotion Management Capability: allows merchants to display,        create, modify, remove and apply promotions.

Given the above, in particular embodiments, a user may create objectsfor virally spreadable container(s) 205 directly from a mobile device.As a non-limiting example, a user may shoot a video from the mobiledevice, upload the video asset from the mobile device (e.g., using thewireless network described in FIG. 1) to the server(s) 102, and thencreate and/or modify features of a new object from the mobile deviceusing commands issued from the mobile device to the central server orservers. Thus, if the objects for the container 205 include ane-commerce store, a user can obtain the assets and create a virallyspreadable e-commerce store—all from a mobile device.

In particular embodiments, a traditional web interface for theadministration application may largely be replicated to allow a mobileuser the convenience of modifying and/or creating information for one'saccount on the go.

In various embodiments, the container 205 technology allows users toselect products and services in context of their video or animationviewing experience in the confines of the display unit for the container205. Upon product or service selection, a user is presented with detailsof the selected product or service without leaving the confines of thedisplay unit or interrupting the animation or video viewing experience,as illustrated for example in FIG. 5. Depending on the type, products orservices in the display unit for the container 205 may be advertised orsold. Additionally, in particular configurations, the entire purchase oradvertisement experience may be completely encompassed inside of thedisplay unit for the container 205.

It is important to note that the container 205 retains all of thepurchasing and advertising capabilities—substantially conducted in thesame manner—when shared on social distribution channels, such as socialnetworks or blogs. In particular configurations, the container 205 isfully capable to be distributed or virally syndicated upon any mediathat supports Adobe Flash™ and HTML5 technologies.

In addition to physical goods and services, the container 205 technologysupports sale and redemption of digital goods, such as coupons and giftcertificates. Digital products presented in the container 205 displayunits are available for purchase or as a reward for completing an actiona merchant deems worthy of product redemption. Such actions may includepurchase, submission of requested information, advertisement or videoviewing or acknowledgement. Upon the sale of a digital product or as aresult of the action deemed to be satisfactory to qualify a user for adigital product award, the digital product is available for redemption.A digital product can be redeemed using a variety of mechanisms,including, but not limited to: a) thanks for the purchase email; b)thanks for the purchase screen; c) end of play of a screen; or d) thirdparty redemption web page.

In particular configurations, a “thanks for the purchase” email mayconstitute a digital mail delivered to the user upon performing adownloadable product redemption qualifying action. Digital mail providesinstructions on how a downloadable product shall be redeemed. In otherconfigurations, a “thanks for the purchase” screen is presented to theuser upon performing a downloadable product redemption qualifyingaction. In such configurations, the aforementioned screen may optionallycontain instruction on how to redeem downloadable product or how todownload the product itself.

In other configurations, an “end of play screen” may be presented to theuser upon completing an animation or video viewing experience until theend. In such configurations, the aforementioned screen may optionallycontain instructions on how to redeem the downloadable product or how todownload the product itself. In other configurations, a third partyredemption webpage served by a third party provider to the user may beprovided upon performing a downloadable product redemption qualifyingaction. The presented webpage may optionally contain instructions of howto redeem a downloadable product or how to download the product itself.

Various embodiments of the present disclosure also provide companionproducts and up sell products with intelligent Internet objects. Thecontainer 205 technology supports companion products and services aswell as up sell products and services. Companion products and servicesare presented to the user at the time of the product selection or postproduct sale. Upon product or service selection, a user may be presentedwith details of the selected product or service, in addition to amatching mechanism. The matching mechanism either may be predefined ordynamically selected additional products or services that complement anoriginal selection. The user is given a choice to perform an actionusing original product or service selection or proceed with a suggestedproduct or service bundle. In the context of the container 205, anaction is defined as a purchase, a charitable contribution, a submissionof requested information, advertisement or video viewing oracknowledgement. An identical mechanism may be utilized during the postpurchase process where, upon completion of the purchase, a user ispresented with up sell products or services suggesting additionalactions.

Any suitable algorithm may be utilized with either mechanisms based, forexample, on common linkage between products and services. Alternatively,the algorithm may be based, for example, on a statistical analysis thatlooks at users and linked products to yield what linked products orservices are most often purchased with a particular product or serviceor grouping of products or services. Yet other techniques will becomeapparent to one of ordinary skill in the art.

Various embodiments of the present disclosure provide a distributedshopping cart with intelligent Internet objects. The container 205technology supports a distributed shopping cart (e.g., accessible via“add to cart” button 505 as illustrated in FIG. 5). The distributedshopping cart allows the user to begin the shopping process in one orseveral display units for container(s) and to complete the transactionin another container that belongs to a merchant or a group of merchantscombined into a merchant network. A merchant network consists ofmerchants that own or several merchants that agree to share usershopping information. By definition, the smallest merchant networkconsists of a single merchant that enables a shared shopping experience.A user may be identified by a tracking mechanism. Such a trackingmechanism may consist of a cookie, personal credentials, or othersuitable tracking techniques, including, for example, an account thathas a username and password. Upon recognition of a user that has one orseveral shopping carts, a user may be prompted for a choice to continuea shopping experience where he/she left off. If a user chooses tocontinue the shopping experience, the shopping flow resumes from thespot where the shopping flow was last persisted. Otherwise, a newshopping cart will be created and the shopping flow will resume from thebeginning. A similar mechanism may be utilized for products and servicesinvolving charitable contributions or contact information collection. Alast known persistence point allows a choice for workflow resumption.

As a brief recapitulation of the above and as an example, a user may bevisiting a friend's Facebook™ wall and see a display of a container withsomething of interest. The particular container display may becomeassociated with the user upon the user's interaction with the containerusing any suitable tracking mechanism. As a simple example, a user maylog into a particular account directly within the display to associatethe container and any items placed within a shopping cart with the user.The user may then visit another site or simply access a containerdisplay via an email. Upon the display being associated with the sameuser, the user may access the items previously placed within the cartand continue shopping, placing additional items within the cart. Theabove is a non-limiting example and is not intended to preclude othermanners of accessing the distributed shopping cart.

Various embodiments of the present disclosure provide distributedretargeting of products with intelligent Internet objects. The container205 supports distributed retargeting of products and services.Distributed retargeting of products and services allows merchants todisplay products or services that were viewed or similar to the productsor services that were viewed by users that belong to a merchant or agroup of merchants combined into the merchant network. Upon recognitionof a user that has viewed one or several products or services in thecontainer 205 or a merchant website belonging to the same merchantnetwork, the user may be presented with the products or services thatwere viewed or similar to the products and services that were viewedduring previous visits. Any suitable algorithm may be used for thepresentment of distributed retargeting, including collaborativefiltering and others. Such algorithms may avail from data from a groupof merchants. Additionally, in the distributed retargeting, additionaltypes of media may be shown with such media associated with the otherproducts or services.

Various embodiments of the present disclosure provide dynamicconfiguration of intelligent internet objects. The container 205technology supports dynamic configuration. The dynamic configurationallows the container 205 to determine the number of screens, screenfields, field validation, business rules and user specificcharacteristics based on the configuration file that is passed to thecontainer 205 technology during the runtime or assembly time. Theconfiguration file contains configuration metadata. Upon receipt of theconfiguration file, the container 205 determines what screens,containing what fields, requiring what validation should be presented tothe user. Based on the user input, the container 205 interprets businessrules passed to it using the configuration file, the logic and the flowof the screen execution. In addition to accepting metadata centricconfiguration files, the container 205 allows inclusion of third partydynamic flows. Such flows can be passed to the container 205 in the formof executable files during container 205 configuration or duringruntime. Just like dynamic configuration files, third party dynamicflows contain screens, screen fields, field validation, business rulesand user-specific characteristics. Unlike dynamic configuration files,third party dynamic flows may not require separate interpretation stepsand can be executed natively inside of the web browser.

FIG. 15 depicts a flowchart of a process for including objects withmedia content in accordance with disclosed embodiments. This process canbe performed, for example, by one or more servers, such as, for example,the server(s) 102 in FIG. 1, configured to perform acts described below,referred to in the singular as “the system.” The process may also beperformed by the configurator 285 in the container managementenvironment 200 in FIG. 2. The process can be implemented by executableinstructions stored in a non-transitory computer-readable medium thatcause one or more servers to perform such a process.

The process begins by the system receiving a request for the mediacontent to be displayed at an endpoint at block 1505. For example, inblock 1505, the system may receive the request as a click to play avideo or may receive the request from a second endpoint where the mediacontent has been viewed and shared to the first endpoint.

Thereafter, the system identifies information about an environmentassociated with the endpoint at block 1510. For example, in block 1510,the system may identify a type of a device associated with the endpoint,a website where the media content is to be displayed, and a networkspeed between the endpoint and the system. In other examples, the systemmay identify information about a location of a device associated withthe endpoint.

The system then identifies a set of objects to send with the requestedmedia content based on the information identified about the environmentat block 1515. For example, in block 1515, the system may includeobjects and the media content in a container (e.g., the container 205 inFIG. 2). At least one of the objects in the set includes program codefor completing an electronic commerce transaction during display of themedia content. For example, the electronic commerce transaction may bepurchasing a good or service, donating money, or submitting a saleslead.

In some examples, the system may identify information about a userassociated with the second endpoint and identify objects to send withthe requested media content based on the information about the user. Forexample, higher quality media content may be sent where the networkbandwidth between an endpoint and the system is high. In other examples,the system may identify rendering parameters associated with the type ofthe device or the website and include objects designed to generate thedisplay of the media content in the set of objects to send based on therendering parameters. In other examples, the system may identify aproduct to advertize with the media content, a language for textassociated with the media content and/or a type of video to send as themedia content for display based on information about the location of thedevice and include appropriate objects in the container. In yet otherexamples, the system may identify information about a status of themarketing campaign associated with the media content and objects basedon the information about the status of the marketing campaign.

In a variety of configurations, analytics may be utilized to determinewhat to send to a user based on their environment and/or profileinformation about the user. For example, based on a geographic locationor determined profile, a shirt advertisement may be sent as opposed to ahat advertisement (which may also be shown in the video) because theanalytics are showing the shirt to be more likely to sell than the hat.

Thereafter, the system sends the set of objects including the mediacontent for display at the endpoint in block 1520. For example, in block1520, the system sends the container to the endpoint for the mediacontent to be displayed and the electronic transaction opportunities tooccur. As referenced above, the objects and media may be sent separatelyor together.

FIG. 16 depicts a flowchart of a process for rendering a container at anendpoint in accordance with disclosed embodiments. This process can beperformed, for example, by the endpoint, such as, for example, theendpoint(s) 110 or 120 in FIG. 1, configured to perform acts describedbelow. The process can be implemented by executable instructions storedin a non-transitory computer-readable medium that cause one or moreservers to perform such a process.

The process begins by receiving a request to render a container at anendpoint at block 1605. For example, in block 1605, the process mayreceive the request from a user requesting to view a video clipassociated with the container. The process may also receive the requestfrom a user sharing the container. The process then identifies a serversupporting the container at block 1610. For example, in block 1610, theprocess may identify the server from the container. The server may beone or more of the server(s) 102 in FIG. 1. In other examples, theserver may be the configurator 285 or one of the backend event server(s)260 in FIG. 2.

Thereafter, the process provides information about the environment atthe endpoint at block 1615. For example, in block 1615, the process mayprovide the identifier of the container information about the endpoint(e.g., website, device type, IP address), information about the usersharing or requesting to view the video, cookies, shopping cartinformation, container tethering information and/or any other type ofinformation that may be useful in selecting objects to include in thecontainer.

The process then receives container objects and location of mediacontent at block 1620. For example, in block 1620, the process receivesthe container objects from the configurator 285 having configured orotherwise selected the objects to include in the container. The locationof the media content may be a server that the media player in thecontainer is to stream or otherwise receive the media content.Thereafter, the process receives and displays media content from thelocation at block 1625. For example, in block 1625, the process maystream the media content inside a display unit for the container from amedia server specified in the container.

FIG. 17 illustrates a data processing system 1700 that may be used toimplement various embodiments of the present disclosure. For example,the data processing system 1700 that may be used in connection withother embodiments of the disclosure to carry out any of theabove-referenced functions and/or serve as a computing device forserver(s) 102 and/or endpoint(s) 110 and 120 of FIG. 1. Data processingsystem 1700 may generally be adapted to execute any of the known OS2,UNIX, Mac-OS, Linux, Android and/or Windows Operating Systems or otheroperating systems. In this example, the data processing system 1700includes a bus system 1702, which provides communications between aprocessor 1704, a memory 1706, a persistent storage 1708, acommunications unit 1710, an input/output (I/O) unit 1712, and a display1714.

The processor 1704 processes instructions for software that may beloaded into the memory 1706. The processor 1704 may be a number ofprocessors, a multi-processor core or some other type of processor,depending on the particular implementation. Further, the processor 1704may be implemented using a number of heterogeneous processor systems inwhich a main processor is present with secondary processors on a singlechip. As another illustrative example, the processor 1704 may be asymmetric multi-processor system containing multiple processors of thesame type.

The memory 1706 and the persistent storage 1708 are examples of storagedevices 1717. A storage device is any piece of hardware that is capableof storing information, such as, for example, without limitation, data,program code in functional form and/or other suitable information eitheron a temporary basis and/or a permanent basis. The memory 1706, in theseexamples, may be, for example, a random access memory or any othersuitable volatile or non-volatile storage device. For example, thepersistent storage 1708 may contain one or more components or devices.For example, the persistent storage 1708 may be a hard drive, a flashmemory, an optical disk, a rewritable magnetic tape or some combinationof the above. The media used by the persistent storage 1708 also may beremovable. For example, a removable hard drive may be used for thepersistent storage 1708.

The communications unit 1710 provides for communications with other dataprocessing systems or devices. For example, the communications unit 1710may be connected to a computer network or a variety of othercommunicative platforms including, but not limited to, a public orprivate data network; a local area network (LAN); a metropolitan areanetwork (MAN); a wide area network (WAN); a wireline or wirelessnetwork; a local, regional, or global communication network; an opticalnetwork; a satellite network; an enterprise intranet; other suitablecommunication links; or any combination of the preceding. For example,the communications unit 1710 may include a network interface card. Thecommunications unit 1710 may provide communications through the use ofeither or both physical and wireless communications links. Thecommunications unit 1710 may also include a radio frequency (RF)transceiver enabling wireless network communication (e.g., WiFi,cellular data connection, etc.). The communications unit 1710 may alsoinclude a GPS transceiver enabling positional location information.

The input/output unit 1712 allows for input and output of data withother devices that may be connected to the data processing system 1700.For example, the input/output unit 1712 may provide a connection foruser input through a keyboard, a mouse, a touch screen and/or some othersuitable input device. Further, the input/output unit 1712 may sendoutput to a printer. The input/output unit 1712 may also include or beconnected to a camera, microphone, speaker, accelerometer and/orproximity sensor. The data processing system 1700 may utilize inputs andoutputs from a camera, microphone, speaker, accelerometer and/orproximity sensors in accordance with various communication and datatransfer principles of the present disclosure. The display 1714 providesa mechanism to display information to a user. For example, the display1714 may be a touch screen.

Program code for an operating system, applications or other programs maybe located in the storage devices 1717, which are in communication withthe processor 1704 through the bus system 1702. In some embodiments, theprogram code is in a functional form on the persistent storage 1708.These instructions may be loaded into the memory 1706 for processing bythe processor 1704. The processes of the different embodiments may beperformed by the processor 1704 using computer implemented instructions,which may be located in the memory 1706. For example, the processor 1704may perform processes for one or more of the modules and/or devicesdescribed above.

In some embodiments, various functions described above are implementedor supported by a computer program product that is formed fromcomputer-readable program code and that is embodied in acomputer-readable medium. Program code for the computer program productmay be located in a functional form on a computer-readable storagedevice that is selectively removable and may be loaded onto ortransferred to the data processing system 1700 for processing by theprocessor 1704. In some illustrative embodiments, the program code maybe downloaded over a network to the persistent storage 1708 from anotherdevice or data processing system for use within the data processingsystem 1700. For instance, program code stored in a computer-readablestorage medium in a server data processing system may be downloaded overa network from the server to the data processing system 1700. The dataprocessing system providing program code may be a server computer, aclient computer, or some other device capable of storing andtransmitting program code.

As will be appreciated by one skilled in the art, aspects of the presentdisclosure may take the form of a computer program embodied in one ormore computer-readable storage medium(s) having program code embodiedthereon. A computer-readable storage medium may be, for example, withoutlimitation, a portable computer diskette, a hard disk, a random accessmemory (RAM), a read-only memory (ROM), an erasable programmableread-only memory (EPROM), flash memory, a portable compact discread-only memory (CD-ROM), an optical storage device, a magnetic storagedevice or any suitable combination of the foregoing. The program codemay also be loaded for execution by a processor to provide processes forimplementing the functions or operations described in the presentdisclosure.

Although FIG. 17 provides one embodiment of a data processing systemthat may be utilized with other embodiments of the disclosure, suchother embodiments may additionally utilize computers other than generalpurpose computers as well as general purpose computers withoutconventional operating systems. Additionally, embodiments of thedisclosure may also include data processing systems 1700 or othercomputers networked together in a computer network. Most commonly,multiple data processing systems 1700 or other computers may benetworked through the Internet and/or in a client server network.Embodiments of the disclosure may also be used with a combination ofseparate computer networks each linked together by a private or a publicnetwork.

Several embodiments of the disclosure may include logic contained withina medium. In the embodiment of FIG. 17, the logic includes computersoftware executable on the data processing system 1700. The medium mayinclude the memory 1706, the persistent storage 1708 or other mediums.In other embodiments, the logic may be contained within hardwareconfiguration or a combination of software and hardware configurations.The logic may also be embedded within any other suitable medium withoutdeparting from the scope of the disclosure.

The functionality of the above description, once again may avail fromany of the components described in FIGS. 1-17 or other suitablecomponents. The code, itself, may be written in any suitable format,including, but not limited to Java, C++, C-sharp, HTML, HTML5, and thelike.

It will be understood that well known processes have not been describedin detail and have been omitted for brevity. Although specific steps,structures and materials may have been described, the present disclosuremay not be limited to these specifics, and others may be substituted asit is well understood by those skilled in the art, and various steps maynot necessarily be performed in the sequences shown.

While this disclosure has described certain embodiments and generallyassociated methods, alterations and permutations of these embodimentsand methods will be apparent to those skilled in the art. Accordingly,the above description of example embodiments does not define orconstrain this disclosure. Other changes, substitutions, and alterationsare also possible without departing from the spirit and scope of thisdisclosure, as defined by the following claims.

1. A method for including objects with media content, the methodcomprising: receiving, at one or more servers, a request for the mediacontent to be displayed at an endpoint; identifying information about anenvironment associated with the endpoint; identifying a set of objectsto include in a container for the media content based on the informationidentified about the environment, at least one of the objects includingprogram code for completing a transaction during display of the mediacontent; and sending, by one or more servers, the set of objects to theendpoint.
 2. The method of claim 1, wherein the endpoint is a firstendpoint and wherein receiving the request for the media content to bedisplayed at the first endpoint comprises: receiving the request from asecond endpoint where the media content has been viewed, wherein therequest is to one of share and embed the media content at the firstendpoint.
 3. The method of claim 2 further comprising: identifyinginformation about a user associated with the second endpoint, whereinidentifying the set of objects to send with the requested media contentcomprises identifying the set of objects to send with the requestedmedia content based on the information about the user.
 4. The method ofclaim 1, wherein: identifying the information about the environmentcomprises identifying at least one of a type of a device associated withthe endpoint and a website where the media content is to be displayed;and identifying the set of objects to send with the requested mediacontent comprises: identifying rendering parameters associated with theidentified at least one of the type of the device and the website; andincluding objects designed to generate the display of the media contentin the set of objects to send based on the rendering parameters.
 5. Themethod of claim 1, wherein: identifying the information about theenvironment comprises identifying information about a location of adevice associated with the endpoint; and identifying the set of objectssend with the requested media content comprises: identifying at leastone of a product to advertize with the media content, a language fortext associated with the media content and a type of video to send asthe media content for display based on information about the location ofthe device; and including objects in the set of objects to send based onthe at least one identified product, language or type.
 6. The method ofclaim 1, wherein identifying the set of objects to send with therequested media content comprises: identifying information about astatus of the marketing campaign associated with the media content; andincluding objects in the set of objects to send based on the informationabout the status of the marketing campaign.
 7. The method of claim 1,wherein the endpoint is one of a website and a frame of an email, andwherein the electronic commerce transaction is at least one ofpurchasing a good or service, donating money, and submitting a saleslead, and wherein the information about the environment associated withthe endpoint comprises at least one of a type of device associated withthe endpoint, a type of the website, location of the device.
 8. A systemfor including objects with media content, the system comprising one ormore servers configures to: receive a request for media content to bedisplayed at an endpoint; identify information about an environmentassociated with the endpoint; identify a set of objects to include in acontainer for the media content based on the information identifiedabout the environment, at least one of the objects including programcode for completing a transaction during display of the media content;and send the set of objects to the endpoint.
 9. The system of claim 8,wherein the endpoint is a first endpoint and to receive the request forthe media content to be displayed at the first endpoint, the one or moreservers are configured to receive the request from a second endpointwhere the media content has been viewed, wherein the request is to oneof share and embed the media content at the first endpoint.
 10. Thesystem of claim 9, wherein the one or more servers are furtherconfigured to: identify information about a user associated with thesecond endpoint, wherein to identify the set of objects to send with therequested media content, the one or more servers are configured toidentify the set of objects to send with the requested media contentbased on the information about the user.
 11. The system of claim 8,wherein: to identify the information about the environment, the one ormore servers are configured to identify at least one of a type of adevice associated with the endpoint and a website where the mediacontent is to be displayed; and to identify the set of objects to sendwith the requested media content, the one or more servers are configuredto: identify rendering parameters associated with the identified atleast one of the type of the device and the website; and include objectsdesigned to generate the display of the media content in the set ofobjects to send based on the rendering parameters.
 12. The system ofclaim 8, wherein: to identify the information about the environment, theone or more servers are configured to identify information about alocation of a device associated with the endpoint; and to identify theset of objects send with the requested media content, the one or moreservers are configured to: identify at least one of a product toadvertize with the media content, a language for text associated withthe media content and a type of video to send as the media content fordisplay based on information about the location of the device; andinclude objects in the set of objects to send based on the at least oneidentified product, language or type.
 13. The system of claim 8, whereinto identify the set of objects to send with the requested media content,the one or more servers are configured to: identify information about astatus of the marketing campaign associated with the media content; andinclude objects in the set of objects to send based on the informationabout the status of the marketing campaign.
 14. The system of claim 8,wherein the endpoint is one of a website and a frame of an email, andwherein the electronic commerce transaction is at least one ofpurchasing a good or service, donating money, and submitting a saleslead, and wherein the information about the environment associated withthe endpoint comprises at least one of a type of device associated withthe endpoint, a type of the website, location of the device.
 15. Anon-transitory computer-readable medium embodying program code that,when executed, causes one or more servers to: receive a request formedia content to be displayed at an endpoint; identify information aboutan environment associated with the endpoint; identify a set of objectsto include in a container for the media content based on the informationidentified about the environment, at least one of the objects includingprogram code for completing a transaction during display of the mediacontent; and send the set of objects to the endpoint.
 16. Thecomputer-readable medium of claim 15, wherein the endpoint is a firstendpoint and wherein the program code that causes the one or moreservers to receive the request for the media content to be displayed atthe first endpoint, comprises program code that causes the one or moreservers to receive the request from a second endpoint where the mediacontent has been viewed, wherein the request is to one of share andembed the media content at the first endpoint.
 17. The computer-readablemedium of claim 16 further comprising program code that causes the oneor more servers to: identify information about a user associated withthe second endpoint, wherein the program code that causes the one ormore servers to identify the set of objects to send with the requestedmedia content, comprises program code that causes the one or moreservers to identify the set of objects to send with the requested mediacontent based on the information about the user.
 18. Thecomputer-readable medium of claim 15, wherein: the program code thatcauses the one or more servers to identify the information about theenvironment, comprises program code that causes the one or more serversto identify at least one of a type of a device associated with theendpoint and a website where the media content is to be displayed; andthe program code that causes the one or more servers to identify the setof objects to send with the requested media content comprises programcode that causes the one or more servers to: identify renderingparameters associated with the identified at least one of the type ofthe device and the website; and include objects designed to generate thedisplay of the media content in the set of objects to send based on therendering parameters.
 19. The computer-readable medium of claim 15,wherein: the program code that causes the one or more servers toidentify the information about the environment comprises program codethat causes the one or more servers to identify information about alocation of a device associated with the endpoint; and the program codethat causes the one or more servers to identify the set of objects sendwith the requested media content comprises program code to cause the oneor more servers to: identify at least one of a product to advertize withthe media content, a language for text associated with the media contentand a type of video to send as the media content for display based oninformation about the location of the device; and include objects in theset of objects to send based on the at least one identified product,language or type.
 20. The computer-readable medium of claim 15, whereinthe program code that causes the one or more servers to identify the setof objects to send with the requested media content comprises programcode to cause the one or more servers to: identify information about astatus of the marketing campaign associated with the media content; andinclude objects in the set of objects to send based on the informationabout the status of the marketing campaign.